#ifndef RUNTIME_PARKEVENT
#define RUNTIME_PARKEVENT

#include "platformEvent.hpp"

class Thread;

class ParkEvent:public PlatformEvent{
private:
    ParkEvent *FreeNext; 
    static ParkEvent* volatile FreeList;

public:
    static ParkEvent* Allocate(Thread *t);
    static void Release(ParkEvent *e);

    void *operator new(size_t sz) throw();
    void operator delete(void *a);

};

#endif